﻿#define _CRT_SECURE_NO_WARNINGS
#include"tree.h"
#include"Queue.h"

//层序遍历
void LevelOrder(BTNode* T)
{
	//创建一个队列
	Queue Q;
	QueueInit(&Q);
	//创建一个辅助节点
	BTNode* P;

	QueuePush(&Q, T);					//将根节点入队
	while (!QueueEmpty(&Q))				//若队列不为空就进行循环
	{
		BTNode* P = QueueFront(&Q);		//队头元素出队
		QueuePop(&Q);
		printf("%c ", P->data);			//访问操作
		if (P->pLeft)
		{
			QueuePush(&Q, P->pLeft);
		}
		if (P->pRight)
		{
			QueuePush(&Q, P->pRight);
		}
	}

}

//结点初始化
BTNode* NodeInit(BTDataType x)
{
	BTNode* A = (BTNode*)malloc(sizeof(BTNode));
	A->data = x;//这是一个不在你想使用的字符集里的字符
	A->pLeft = NULL;
	A->pRight = NULL;
	return A;
}


